package com.shujia

import scala.collection.mutable

object Demo23Map {
  def main(args: Array[String]): Unit = {
    /**
     * map
     * 1、kv结构集合
     * 2、可以通过key获取value
     * 3、key是无序唯一的
     * 4、不可变的map
     */

    //"age" -> 23 快速构建二元组
    val map: Map[String, Any] = Map(("id", "001"), ("name", "张三"), "age" -> 23)

    println(map)

    //通过key获取value
    println(map("name"))
    println(map("age"))

    //getOrElse 如果有就返回，如果没有返回后面的默认值，避免代码执行报错
    println(map.getOrElse("clazz", "文科一班"))

    println(map.keys) //获取所有key
    println(map.values) //获取所有value

    //循环map集合
    for (kv <- map) {
      val field: String = kv._1
      val value: Any = kv._2
      println(s"$field\t$value")
    }

    //简写
    for ((field, value) <- map) {
      println(s"$field\t$value")
    }

    /**
     * 课表map
     */
    val hashMap = new mutable.HashMap[String, String]()

    //插入元素
    hashMap.put("001", "张三")
    hashMap.put("002", "李四")
    hashMap.put("003", "王五")

    println(hashMap)

    //删除元素
    hashMap.remove("001")
    println(hashMap)

    //修改元素
    hashMap.update("002", "李四1")
    println(hashMap)

    //简化插入数据
    hashMap += "004" -> "赵六"
    println(hashMap)

    //使用foreach循环列表
    hashMap.foreach(kv => println(kv))
  }
}
